/***********************************************************************
 * Module:  Product.java
 * Author:  admin
 * Purpose: Defines the Class Product
 ***********************************************************************/

package com.niuwa.p2p.entity.productTemplate;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 产品信息表
 * 
 * @pdOid ab07247e-feb2-4e0c-b84f-fa1549ca4d34
 */
public class Product {
	
	private Long version;
	
	/**
	 * 产品编号
	 * 
	 * @pdOid 938aca18-547e-49ef-8f57-6fb46d61956e
	 */
	private java.lang.String productCode;
	/**
	 * 产品模板ID
	 * 
	 * @pdOid 067fbdb6-679b-4c08-bc45-e17b4b29ee4c
	 */
	private Long tempId;
	/**
	 * 产品名称
	 * 
	 * @pdOid c6312ec7-4b6a-4716-8c0b-c0b6d89b9da6
	 */
	private java.lang.String productName;
	/**
	 * 产品简介
	 * 
	 * @pdOid 25572f39-4a02-4681-9238-80f33c2173a1
	 */
	private java.lang.String prodDesc;
	/**
	 * 到期状态
	 * 
	 * @pdOid bfdbfd64-cacd-4017-a0dd-8062ef94fbde
	 */
	private java.lang.String expireStatus;
	/**
	 * 投资人数
	 * 
	 * @pdOid b2926f07-802d-4087-a8a1-6e23264dfc98
	 */
	private Integer investorCount;
	/**
	 * 产品到期日
	 * 
	 * @pdOid 24f46e84-1e96-46ac-814a-19df08031e01
	 */
	private java.util.Date expireTime;
	/**
	 * 起售时间
	 * 
	 * @pdOid 2f9bc465-95bb-4f09-a88e-20c374076cbd
	 */
	private java.util.Date startSellTime;
	/**
	 * 停售时间
	 * 
	 * @pdOid ab807056-e5a2-4ddc-ae85-2ee58f4adcea
	 */
	private java.util.Date endSellTime;
	/**
	 * 创建时间
	 * 
	 * @pdOid be28d582-a57e-43e7-bf74-26f39eb42327
	 */
	private java.util.Date createTime;
	/**
	 * 产品类型
	 * 
	 * @pdOid 33f16d5d-e8c8-41b8-9ef0-50b6ce7c7e2f
	 */
	private java.lang.String prodKind;
	/**
	 * 开放用户
	 * 
	 * @pdOid 57fce3ca-3e80-4dea-b516-d0209c56bc1f
	 */
	private java.lang.String openCustomer;
	/**
	 * 用户来源
	 * 
	 * @pdOid 51de2b6c-8a8a-46a6-a171-c4a94f5660c5
	 */
	private java.lang.String customerOrigin;
	/**
	 * 发布时间
	 * 
	 * @pdOid a3b1fb83-9151-471a-a7ed-68cf11010f9a
	 */
	private java.util.Date releaseTime;
	/**
	 * 有效期限
	 * 
	 * @pdOid f3e37b84-4a8a-4e45-9367-5da2de32fac7
	 */
	private Integer validTerm;
	/**
	 * 是否限制有效期限
	 * 
	 * @pdOid 7c525edc-95f5-49bc-b39b-48e3805bd3b5
	 */
	private java.lang.String isValidTerm;

	/**
	 * 起售金额
	 * 
	 * @pdOid 2ca63e16-f86d-4cca-b81f-3aaf9fed8b20
	 */
	private BigDecimal minAmount;
	/**
	 * 购买上限
	 * 
	 * @pdOid 607dc95a-6dec-4866-bedd-8f139b4ee387
	 */
	private BigDecimal maxAmount;
	/**
	 * 递增金额
	 * 
	 * @pdOid cb2d46b5-6eda-4c48-bb38-ccb50a06ac8a
	 */
	private BigDecimal stepAmount;
	/**
	 * 附加收益
	 * 
	 * @pdOid 8ec81566-cfb9-4835-84be-52892d7261b1
	 */
	private BigDecimal addYield;
	/**
	 * 操作人
	 * 
	 * @pdOid 404455d0-d7fa-433f-a02a-307b866fe770
	 */
	private Long operator;
	/**
	 * 审核人
	 * 
	 * @pdOid d2d28ab7-4447-4430-80f9-0755cf4dc83a
	 */
	private Long auditor;
	/**
	 * 最低持有期限
	 * 
	 * @pdOid d39a0990-b815-492e-8f11-1bd7a95f8599
	 */
	private Integer minHoldTerm;
	/**
	 * 持有期限周期
	 * 
	 * @pdOid c66e63a8-a336-43a6-a007-db597cd33fb1
	 */
	private java.lang.String holdTermType;

	/**
	 * 完成进度
	 */
	private BigDecimal completedProgress;

	/**
	 * 有效期限周期
	 */
	private String validTermType;

	/**
	 * 收益说明
	 */
	private String incomeDesc;

	/**
	 * 满标日
	 */
	private Date fullScaleDate;
	
	/**
	 * 剩余金额
	 */
	private BigDecimal remainAmount;
	

	public Product() {
	}

	public Product(String productCode) {
		this.productCode = productCode;
	}
	
	
	
	public Product(Long version, String productCode, Integer investorCount, BigDecimal completedProgress, BigDecimal remainAmount) {
		this.version = version;
		this.productCode = productCode;
		this.investorCount = investorCount;
		this.completedProgress = completedProgress;
		this.remainAmount = remainAmount;
	}

	public Long getVersion() {
		return version;
	}

	public void setVersion(Long version) {
		this.version = version;
	}

	public java.lang.String getProductCode() {
		return productCode;
	}

	public void setProductCode(java.lang.String productCode) {
		this.productCode = productCode;
	}

	public Long getTempId() {
		return tempId;
	}

	public void setTempId(Long tempId) {
		this.tempId = tempId;
	}

	public java.lang.String getProductName() {
		return productName;
	}

	public void setProductName(java.lang.String productName) {
		this.productName = productName;
	}

	public java.lang.String getProdDesc() {
		return prodDesc;
	}

	public void setProdDesc(java.lang.String prodDesc) {
		this.prodDesc = prodDesc;
	}

	public java.lang.String getExpireStatus() {
		return expireStatus;
	}

	public void setExpireStatus(java.lang.String expireStatus) {
		this.expireStatus = expireStatus;
	}

	public Integer getInvestorCount() {
		return investorCount;
	}

	public void setInvestorCount(Integer investorCount) {
		this.investorCount = investorCount;
	}

	public java.util.Date getExpireTime() {
		return expireTime;
	}

	public void setExpireTime(java.util.Date expireTime) {
		this.expireTime = expireTime;
	}

	public java.util.Date getStartSellTime() {
		return startSellTime;
	}

	public void setStartSellTime(java.util.Date startSellTime) {
		this.startSellTime = startSellTime;
	}

	public java.util.Date getEndSellTime() {
		return endSellTime;
	}

	public void setEndSellTime(java.util.Date endSellTime) {
		this.endSellTime = endSellTime;
	}

	public java.util.Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(java.util.Date createTime) {
		this.createTime = createTime;
	}

	public java.lang.String getProdKind() {
		return prodKind;
	}

	public void setProdKind(java.lang.String prodKind) {
		this.prodKind = prodKind;
	}

	public java.lang.String getOpenCustomer() {
		return openCustomer;
	}

	public void setOpenCustomer(java.lang.String openCustomer) {
		this.openCustomer = openCustomer;
	}

	public java.lang.String getCustomerOrigin() {
		return customerOrigin;
	}

	public void setCustomerOrigin(java.lang.String customerOrigin) {
		this.customerOrigin = customerOrigin;
	}

	public java.util.Date getReleaseTime() {
		return releaseTime;
	}

	public void setReleaseTime(java.util.Date releaseTime) {
		this.releaseTime = releaseTime;
	}

	public Integer getValidTerm() {
		return validTerm;
	}

	public void setValidTerm(Integer validTerm) {
		this.validTerm = validTerm;
	}

	public java.lang.String getIsValidTerm() {
		return isValidTerm;
	}

	public void setIsValidTerm(java.lang.String isValidTerm) {
		this.isValidTerm = isValidTerm;
	}

	public BigDecimal getMinAmount() {
		return minAmount;
	}

	public void setMinAmount(BigDecimal minAmount) {
		this.minAmount = minAmount;
	}

	public BigDecimal getMaxAmount() {
		return maxAmount;
	}

	public void setMaxAmount(BigDecimal maxAmount) {
		this.maxAmount = maxAmount;
	}

	public BigDecimal getStepAmount() {
		return stepAmount;
	}

	public void setStepAmount(BigDecimal stepAmount) {
		this.stepAmount = stepAmount;
	}

	public BigDecimal getAddYield() {
		return addYield;
	}

	public void setAddYield(BigDecimal addYield) {
		this.addYield = addYield;
	}

	public Long getOperator() {
		return operator;
	}

	public void setOperator(Long operator) {
		this.operator = operator;
	}

	public Long getAuditor() {
		return auditor;
	}

	public void setAuditor(Long auditor) {
		this.auditor = auditor;
	}

	public Integer getMinHoldTerm() {
		return minHoldTerm;
	}

	public void setMinHoldTerm(Integer minHoldTerm) {
		this.minHoldTerm = minHoldTerm;
	}

	public java.lang.String getHoldTermType() {
		return holdTermType;
	}

	public void setHoldTermType(java.lang.String holdTermType) {
		this.holdTermType = holdTermType;
	}

	public BigDecimal getCompletedProgress() {
		return completedProgress;
	}

	public void setCompletedProgress(BigDecimal completedProgress) {
		this.completedProgress = completedProgress;
	}

	public String getValidTermType() {
		return validTermType;
	}

	public void setValidTermType(String validTermType) {
		this.validTermType = validTermType;
	}

	public Product(String productCode, long auditor) {
		super();
		this.productCode = productCode;
		this.auditor = auditor;
	}

	public String getIncomeDesc() {
		return incomeDesc;
	}

	public void setIncomeDesc(String incomeDesc) {
		this.incomeDesc = incomeDesc;
	}

	public Date getFullScaleDate() {
		return fullScaleDate;
	}

	public void setFullScaleDate(Date fullScaleDate) {
		this.fullScaleDate = fullScaleDate;
	}

	public BigDecimal getRemainAmount() {
		return remainAmount;
	}

	public void setRemainAmount(BigDecimal remainAmount) {
		this.remainAmount = remainAmount;
	}
}